Computer system virtualization allows multiple operating systems and processes to share the hardware resources of a host computer. Ideally, the system virtualization provides resource isolation so that each operating system does not realize that it is sharing resources with another operating system and does not adversely affect the execution of the other operating system. Such system virtualization enables applications including server consolidation, co-located hosting facilities, distributed web services, applications mobility, secure computing platforms, and other applications that provide for efficient use of underlying hardware resources.
Existing virtualization systems, such as those provided by VMWare and Microsoft, have developed relatively sophisticated virtualization systems that are architected as a monolithic virtualization software system that hosts each virtualized system. In other words, these virtualization systems are constructed to host each of the virtualized systems on a particular computing platform. As such, the virtualization systems or virtual machine monitors (VMMs) associate hardware resources of a particular platform with each partition. Typically, this involves sharing of resources across multiple partitions. For example, two partitions may share a same processor and memory resource (although may be separated by address ranges or otherwise maintained to ensure isolated memory management). Furthermore, two such partitions may also share input/output devices, such as keyboards, mice, printing ports, Ethernet ports, or other communications interfaces.
When computing resources of a host computer are allocated to a particular virtual partition, those resources are generally dedicated to that partition, and the partition can be exposed to other partitions via virtual local area networks (vLANs) within a computing fabric. However, such an arrangement has disadvantages. In particular, two partitions residing on the same host computer may be exposed to each other via a vLAN despite being on the same platform, and therefore may rely on I/O device-based communication interfaces (and assumptions built into the software used to communicate via those interfaces). Accordingly, communication among partitions may be less efficient than would otherwise be possible if the partitions had knowledge of operation on a common platform. Furthermore, as communication interface technologies used for networking between host computers improve, latency and bandwidth issues regarding inter-computer communications become less critical.
Additional disadvantages exist because, in traditional virtualization environments, communications among partitions and usage of resources at different partitions is heavily managed and regulated by both the operating system within the partition and the virtualization layer supporting the partition. Such communications and system resource usage spread across multiple platforms has traditionally been discouraged in existing virtualization platforms.